﻿#ifndef __FIGHTING_H_
#define __FIGHTING_H_
#include "Entity.h"

class Enemy;
class Sprite;
class WeaponBank;
class Background;
class Collider;
class Button;
class SupplyBank;
class Message;
//战斗
class Fighting : public Entity
{
public:
    Fighting(QSize size, QObject* parent = nullptr);
    virtual~Fighting();
    virtual void init();
    virtual void update();
    virtual void draw(QPainter* painter);
    //按键操作
    virtual void keyMoveby();
    //设置玩家飞机移动步长
    void setKeySteplength(const int Steplength=20);
   
public:
    //返回战斗中的背景的指针
    Background* getPtrBackground();
public:
    //返回玩家的指针
    Sprite* getPtrPlayer();
    //设置玩家血量
    void setPlayerHp(const int Hp, const int MaxHp);
public:
    //返回玩家武器库的指针
    WeaponBank* getPtrplayBullet();
public:
    //返回敌机组
    Enemy* getPtrEnemy();
public:
    //返回战斗碰撞器
    Collider* getPtrCollider();
private:
protected:
//private:
    QSize m_Size;//窗口地图大小
    int m_KeySteplength = 20;//步长
    Sprite* m_Player = nullptr;//玩家
    SupplyBank* m_SupplyBank=nullptr;//补给库
    Background* m_back = nullptr;//背景
    Enemy* m_enemy=nullptr;//敌机组
    Collider* m_Collider=nullptr;//碰撞操作;
    Button* m_pauseButton=nullptr;//暂停继续按钮
    Message* m_Message=nullptr;//信息显示
    bool m_pause=false;//暂停
};
#endif